package com.itheima.tanhua.api;

import com.itheima.tanhua.mongo.UserLike;
import com.itheima.tanhua.vo.CountsVo;
import com.itheima.tanhua.vo.PageResult;

/**
 * @author Lff
 * @date 2022/4/1
 */
public interface UserLikeApi {
    /**
     * 添加或修改喜欢关系
     *
     * @param userLike
     */
    Boolean saveOrUpdate(UserLike userLike);

    /**
     * 查看用户是否相互喜欢
     *
     * @param userId
     * @param likeUserId
     * @return
     */
    boolean hasLikeRelation(Long userId, Long likeUserId);

    /**
     * 统计各种数据的数量
     *
     * @param id
     * @return
     */
    CountsVo findCounts(Long id);

    /**
     * 查询 根据指定Userid查询UserLike
     * 返回PageResult
     * 1-互相关注
     * 2-我关注
     * 3-粉丝
     *
     * @param userId   当前登录用户id
     * @param type     查询类型
     * @param page     页码
     * @param pagesize 页尺寸
     * @return
     */
    PageResult findUserLikePage(Long userId, Integer type, Integer page, Integer pagesize);

    /**
     * 修改用户的相互喜欢状态
     *
     * @param userId
     * @param likeUserId
     * @param b
     */
    void updateAlreadyLove(Long userId, Long likeUserId, boolean b);

    /**
     * 用户是否互相喜欢
     * @param userId
     * @param likeUserId
     * @return
     */
    boolean checkAlreadyLove(Long userId, Long likeUserId);

    /**
     * 判断用户是否互相喜欢
     * @param userId
     * @param likeUserId
     * @return
     */
    boolean isAlreadyLove(Long userId, Long likeUserId);

}
